在 SVM(二)中,我们看到了如下的表示形式:

这里,内积$(x_i \cdot x_j)$就是最简单的核函数的形式。一般核函数会被写成$\langle x^{(i)}, x^{(j)} \rangle$的形式。

有时候,我们会将一些特征转换到高维空间上,就像我们在之前的过拟合&局部加权回归中提到的,比如特征$x$表示的是房屋面积,我们需要预测房子是否会在 6 个月内被卖出,我们有时候会将这个特征映射成如下的形式:

原先的特征的内积形式$\langle x^{(i)}, x^{(j)} \rangle$会被写成$\langle \phi(x^{(i)}), \phi(x^{(j)}) \rangle$,而且往往$\phi(x)$会有很高的维度。因为在很多情况下,计算$\phi(x)$会有很高的代价,或者表示$\phi(x)$需要很高的代价,但是光是计算内核则可能代价较小。

比如:假如有两个输入:$x, z \in \Bbb R^n$,核函数被定义为:

假如需要表示成高维向量,那么$\phi(x)$是一个$n \times n$维的向量,如果$n = 3$:

所以,计算$\phi(x)$的时间复杂度就达到了$O(n^2)$,而计算核函数仅仅需要计算$x^Tz$,复杂度为$O(n)$。

接下去我们为这个核函数增加常数项:

那么:

更一般的:

有了核函数,即可替换 SVM 中的内积$\langle x^{(i)}, x^{(j)} \rangle$,比如常用的高斯核:

有了核函数,相当于把数据从原始空间转换到了高位空间,很多数据,在一维空间往往是线性不可分的,但是到了高维空间会变成可分的:

核函数的合法性

如何判断一个核函数是合法的呢?判断依据是:是否存在函数$\phi$,使得$k(x,z)$能够被写成$\langle \phi(x), \phi(z) \rangle$。

定理:如果核函数合法,那么其对应的核矩阵(kernel matrix)是半正定的。

核矩阵指的是矩阵$K \in \Bbb R^{m\times m}$,其中$K_{ij}=k(x^{(i)}, x^{(j)})$。半正定的意思是,对于任意向量$z$,都存在$z^TKz \geq 0$,证明如下:

事实上,上面的定理的逆命题也一样成立,总结起来:

Merce 定理:给定核函数$k(x, z)$,那么$k(x, z)$合法(也即$\exists \phi, k(x,z)=\phi(x)^T\phi(z)$),当且仅当,对所有的$\lbrace x^{(1)}, \ldots, x^{(m)} \rbrace$,核矩阵$K \in \Bbb R^{m\times m}$是一个对称的半正定矩阵。